package es.qb.deportivos.bl.impl;

import es.qb.deportivos.bl.interfaces.JugadorBS;
import es.qb.deportivos.exception.GeneralBusinessException;
import es.qb.deportivos.exception.GeneralDAOException;
import es.qb.deportivos.il.dal.interfaces.JugadorDAO;
import es.qb.deportivos.il.domain.Jugador;
import es.qb.deportivos.il.domain.Users;

public class JugadorBSImpl extends GeneralBSImpl<Jugador> implements JugadorBS {
	/**
	 * Dao para las operaciones.
	 */
	private JugadorDAO jugadorDAO;

	/**
	 * @return the jugadorDAO
	 */
	public JugadorDAO getJugadorDAO() {
		return jugadorDAO;
	}

	/**
	 * @param jugadorDAO
	 *            the jugadorDAO to set
	 */
	public void setJugadorDAO(JugadorDAO jugadorDAO) {
		this.jugadorDAO = jugadorDAO;
	}

	public Long calculaPJ(Jugador jugador) throws GeneralBusinessException {

		try {
			return jugadorDAO.calculaPJ(jugador);
		} catch (GeneralDAOException e) {
			throw new GeneralBusinessException(e);
		}

	}

	public Long calculaPG(Jugador jugador) throws GeneralBusinessException {

		try {
			return jugadorDAO.calculaPG(jugador);
		} catch (GeneralDAOException e) {
			throw new GeneralBusinessException(e);
		}

	}

	public Long calculaPE(Jugador jugador) throws GeneralBusinessException {

		try {
			return jugadorDAO.calculaPE(jugador);
		} catch (GeneralDAOException e) {
			throw new GeneralBusinessException(e);
		}

	}

	public Long calculaPP(Jugador jugador) throws GeneralBusinessException {

		try {
			return jugadorDAO.calculaPP(jugador);
		} catch (GeneralDAOException e) {
			throw new GeneralBusinessException(e);
		}

	}

	public Long calculaGOL(Jugador jugador) throws GeneralBusinessException {

		try {
			return jugadorDAO.calculaGOL(jugador);
		} catch (GeneralDAOException e) {
			throw new GeneralBusinessException(e);
		}

	}

	public Users cargarUsuario(String username) {

		return jugadorDAO.cargarUsuario(username);

	}

	public Users guardarCambioPassword(Users usuarioNuevo) {

		return jugadorDAO.guardarCambioPassword(usuarioNuevo);

	}
}
